program Project1; // Zadanie 6.4

{$APPTYPE CONSOLE}

uses
  SysUtils;

const
  n=6;

var
  liczby : array[1..n] of integer;

type
sortowanie = class
  procedure czytaj_dane();
  procedure przetworz_dane();
  procedure wyswietl_wynik();
end;

procedure sortowanie.czytaj_dane();
var
  i:integer;
begin
  liczby[1] := 274;
  liczby[2] := 303;
  liczby[3] := 34;
  liczby[4] := 125;
  liczby[5] := 81;
  liczby[6] := 23;

  write('Liczby nieposortowane: ');
  for i := 1 to n do
    if i < n then
      write(liczby[i],', ')
    else
      write(liczby[i],'. ');
  writeln;
end;

procedure sortowanie.przetworz_dane();// algorytm sortowania babelkowego
var
  i,j,x:integer;
begin
  for i := 2 to 6 do
    begin
      for j := 6 downto i do
        begin
          if liczby[j-1] > liczby[j] then
            begin
              x          := liczby[j-1];
              liczby[j-1]:= liczby[j];
              liczby[j]  := x;
            end;
        end;
    end;
end;

procedure sortowanie.wyswietl_wynik();
var
  i:integer;
begin
  write('Liczby posortowane   : ');
  for i := 1 to n do
    if i < n then
      write(liczby[i],', ')
    else
      write(liczby[i],'. ');
  writeln;
end;

var
  babelki:sortowanie;

begin
  babelki:=sortowanie.Create; // konstruktor
  babelki.czytaj_dane();
  babelki.przetworz_dane();
  babelki.wyswietl_wynik();
  babelki.Free; // destruktor

  readln;// czeka na nacisniecie klawisza Enter
end.
